<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <style>
    body {
      width: 500px;
      margin: 0 auto;
    }

    p {
      background: aqua;
      border: 3px solid blue;
      padding: 10px;
      margin: 10px;
    }

    span {
      background: red;
      border: 1px solid black;
    }

    .positioned {
      position: static;
      background: yellow;
    }

    body {
      width: 500px;
      height: 1400px;
      margin: 0 auto;
    }

    h1 {
      position: fixed;
      top: 0;
      width: 500px;
      margin: 0 auto;
      /* 水平居中 */
      background: white;
      padding: 10px;
    }

    p:nth-of-type(1) {
      margin-top: 60px;
    }
  </style>
</head>

<body>
  <!--
    与绝对定位的工作方式完全相同，只有一个主要区别：绝对定位将元素固定在相对于其位置最近的祖先。
    （如果没有，则为初始包含它的块）而固定定位固定元素则是相对于浏览器视口本身。
    这意味着你可以创建固定的有用的 UI 项目，如持久导航菜单。
  -->
  <div>
    <h1>Basic document flow</h1>

    <p>I am a basic block level element. My adjacent block level elements sit on new lines below me.</p>

    <p class="positioned">By default we span 100% of the width of our parent element, and we are as tall as our child
      content. Our total
      width and height is our content + padding + border width/height.</p>

    <p>We are separated by our margins. Because of margin collapsing, we are separated by the width of one of our
      margins, not both.</p>

    <p>inline elements <span>like this one</span> and <span>this one</span> sit on the same line as one another, and
      adjacent text nodes, if there is space on the same line. Overflowing inline elements will <span>wrap onto a new
        line if possible (like this one containing text)</span>, or just go on to a new line if not, much like this
      image will do: <img src="https://mdn.mozillademos.org/files/13360/long.jpg"></p>
  </div>
</body>

</html>